『The Art of Multiprocessor Programming』
なぜこの本を読むか
尊敬する人が最も影響を受けた本の一つと言っていた
ほかは PFDS
1. Intriduction
共有オブジェクトを使った並行・並列アルゴリズムを見ていく
principles パートと practice パート
safety
起こっちゃいけないことが起こらないこと
信号が全部青になるとか (事故起こる)
liveness
起こってほしいことが起こること
信号がいつか青になるとか
1.1 Shared Objects and Synchronization
10^10までの素数を10スレッド使って全部見つける
やり方1: 1~10^9, 10^9+1~10^9*2, ...を10スレッドで分ける
これはダメ。各スレッドのタスクの重さが異なる。数が大きい方が素数判定に時間がかかる
やり方2: 共有カウンタを1つ用意。各スレッドは素数判定が終わったらカウンタをインクリメントして、カウンタの値が素数かを判定する
カウンタのないーぶな実装
スレッドセーフではない